package com.qhhc.service;

import com.qhhc.entity.FileInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface FileService {
    
    /**
     * 上传文件
     * @param file 上传的文件
     * @return 文件信息
     */
    FileInfo uploadFile(MultipartFile file);
    
    /**
     * 获取所有文件列表
     * @return 文件列表
     */
    List<FileInfo> getAllFiles();
    
    /**
     * 根据ID获取文件
     * @param id 文件ID
     * @return 文件信息
     */
    FileInfo getFileById(Long id);
    
    /**
     * 删除文件
     * @param id 文件ID
     * @return 是否删除成功
     */
    boolean deleteFile(Long id);
    
    /**
     * 处理文件
     * @param id 文件ID
     * @param operation 操作类型（例如：compress, rename等）
     * @param params 操作参数
     * @return 处理后的文件信息
     */
    FileInfo processFile(Long id, String operation, Object params);

    /**
     * 分页获取文件列表
     * @param page 页码
     * @param size 每页大小
     * @return 文件列表
     */
    List<FileInfo> getFiles(int page, int size);

    /**
     * 获取文件总数
     * @return 文件总数
     */
    long getTotalFiles();
}